<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs">
<head>
<title>实验性库头文件 &lt;experimental/ranges/algorithm&gt;</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">
<link rel="shortcut icon" href="../../../../../common/favicon.ico">
<link rel="stylesheet" href="../../../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_zh_:resourceloader:filter:minify-css:7:15cea3ec788a65b5187d4018eed543bf */</style>

<script src="../../../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/header/experimental/ranges/algorithm","wgTitle":"cpp/header/experimental/ranges/algorithm","wgCurRevisionId":62217,"wgArticleId":12081,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"zh","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"zh","wgMonthNames":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgMonthNamesShort":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgRelevantPageName":"cpp/header/experimental/ranges/algorithm","wgUserVariant":"zh","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"zh","language":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-MathJax":1,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_zh_:resourceloader:filter:minify-js:7:258d7cd6aa9aa67dee25e01fb6a9e505 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
	line-height: normal; border: 0px none white;
}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for cpp
 * CSS class: source-cpp, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 * --------------------------------------
 */
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp  {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }

/*]]>*/
</style><!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_header_experimental_ranges_algorithm skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        <!-- /header -->
        <!-- content -->
<div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">实验性库头文件</span> &lt;experimental/ranges/algorithm&gt;</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">来自cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../../../cpp.html" title="cpp">cpp</a>‎ | <a href="../../../header.html" title="cpp/header">header</a>‎ | <a href="../../experimental.html" title="cpp/header/experimental">experimental</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr"><div class="t-navbar" style=""><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../../language.html" title="cpp/language">语言</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../header.html" title="cpp/header">标准库头文件</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../freestanding.html" title="cpp/freestanding"> 自立与有宿主实现</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../named_req.html" title="cpp/named req">具名要求</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../utility.html#.E8.AF.AD.E8.A8.80.E6.94.AF.E6.8C.81" title="cpp/utility">语言支持库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../concepts.html" title="cpp/concepts">概念库</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../error.html" title="cpp/error">诊断库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../utility.html" title="cpp/utility">工具库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../string.html" title="cpp/string">字符串库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../container.html" title="cpp/container">容器库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../iterator.html" title="cpp/iterator">迭代器库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../ranges.html" title="cpp/ranges"> 范围库</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../algorithm.html" title="cpp/algorithm">算法库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../numeric.html" title="cpp/numeric">数值库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../locale.html" title="cpp/locale">本地化库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../io.html" title="cpp/io">输入/输出库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../filesystem.html" title="cpp/filesystem">文件系统库</a> <span class="t-mark-rev t-since-cxx17">(C++17)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../regex.html" title="cpp/regex">正则表达式库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../atomic.html" title="cpp/atomic">原子操作库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../thread.html" title="cpp/thread">线程支持库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../../experimental.html" title="cpp/experimental">技术规范</a> </td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../../header.html" title="cpp/header"> 标准库头文件</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv-h2"><td colspan="5"> 语言支持</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cstddef.html" title="cpp/header/cstddef"><tt>&lt;cstddef&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cstdlib.html" title="cpp/header/cstdlib"><tt>&lt;cstdlib&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../version.html" title="cpp/header/version"><tt>&lt;version&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../limits.html" title="cpp/header/limits"><tt>&lt;limits&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../climits.html" title="cpp/header/climits"><tt>&lt;climits&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cfloat.html" title="cpp/header/cfloat"><tt>&lt;cfloat&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cstdint.html" title="cpp/header/cstdint"><tt>&lt;cstdint&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../new.html" title="cpp/header/new"><tt>&lt;new&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../typeinfo.html" title="cpp/header/typeinfo"><tt>&lt;typeinfo&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../source_location.html" title="cpp/header/source location"><tt>&lt;source_location&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../exception.html" title="cpp/header/exception"><tt>&lt;exception&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../initializer_list.html" title="cpp/header/initializer list"><tt>&lt;initializer_list&gt;</tt></a>    </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../compare.html" title="cpp/header/compare"><tt>&lt;compare&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../coroutine.html" title="cpp/header/coroutine"><tt>&lt;coroutine&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../csignal.html" title="cpp/header/csignal"><tt>&lt;csignal&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../csetjmp.html" title="cpp/header/csetjmp"><tt>&lt;csetjmp&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cstdarg.html" title="cpp/header/cstdarg"><tt>&lt;cstdarg&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 概念</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../concepts.html" title="cpp/header/concepts"><tt>&lt;concepts&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 诊断</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../stdexcept.html" title="cpp/header/stdexcept"><tt>&lt;stdexcept&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cassert.html" title="cpp/header/cassert"><tt>&lt;cassert&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cerrno.html" title="cpp/header/cerrno"><tt>&lt;cerrno&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../system_error.html" title="cpp/header/system error"><tt>&lt;system_error&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 通用工具</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../memory_resource.html" title="cpp/header/memory resource"><tt>&lt;memory_resource&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../scoped_allocator.html" title="cpp/header/scoped allocator"><tt>&lt;scoped_allocator&gt;</tt></a>    </td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../bitset.html" title="cpp/header/bitset"><tt>&lt;bitset&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../optional.html" title="cpp/header/optional"><tt>&lt;optional&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../any.html" title="cpp/header/any"><tt>&lt;any&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../variant.html" title="cpp/header/variant"><tt>&lt;variant&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ratio.html" title="cpp/header/ratio"><tt>&lt;ratio&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../chrono.html" title="cpp/header/chrono"><tt>&lt;chrono&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../typeindex.html" title="cpp/header/typeindex"><tt>&lt;typeindex&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../stacktrace.html" title="cpp/header/stacktrace"><tt>&lt;stacktrace&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ctime.html" title="cpp/header/ctime"><tt>&lt;ctime&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 字符串</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../string_view.html" title="cpp/header/string view"><tt>&lt;string_view&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cstring.html" title="cpp/header/cstring"><tt>&lt;cstring&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../charconv.html" title="cpp/header/charconv"><tt>&lt;charconv&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../format.html" title="cpp/header/format"><tt>&lt;format&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cctype.html" title="cpp/header/cctype"><tt>&lt;cctype&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cwctype.html" title="cpp/header/cwctype"><tt>&lt;cwctype&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cwchar.html" title="cpp/header/cwchar"><tt>&lt;cwchar&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cuchar.html" title="cpp/header/cuchar"><tt>&lt;cuchar&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 本地化</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../locale.html" title="cpp/header/locale"><tt>&lt;locale&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../codecvt.html" title="cpp/header/codecvt"><tt>&lt;codecvt&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../clocale.html" title="cpp/header/clocale"><tt>&lt;clocale&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 容器</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../span.html" title="cpp/header/span"><tt>&lt;span&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../array.html" title="cpp/header/array"><tt>&lt;array&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../deque.html" title="cpp/header/deque"><tt>&lt;deque&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../queue.html" title="cpp/header/queue"><tt>&lt;queue&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../stack.html" title="cpp/header/stack"><tt>&lt;stack&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 迭代器</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 范围</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ranges.html" title="cpp/header/ranges"><tt>&lt;ranges&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 算法</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../execution.html" title="cpp/header/execution"><tt>&lt;execution&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 数值</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../complex.html" title="cpp/header/complex"><tt>&lt;complex&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../random.html" title="cpp/header/random"><tt>&lt;random&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../valarray.html" title="cpp/header/valarray"><tt>&lt;valarray&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../numeric.html" title="cpp/header/numeric"><tt>&lt;numeric&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../bit.html" title="cpp/header/bit"><tt>&lt;bit&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../numbers.html" title="cpp/header/numbers"><tt>&lt;numbers&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cfenv.html" title="cpp/header/cfenv"><tt>&lt;cfenv&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cmath.html" title="cpp/header/cmath"><tt>&lt;cmath&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 输入/输出</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../iosfwd.html" title="cpp/header/iosfwd"><tt>&lt;iosfwd&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ios.html" title="cpp/header/ios"><tt>&lt;ios&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../iomanip.html" title="cpp/header/iomanip"><tt>&lt;iomanip&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../streambuf.html" title="cpp/header/streambuf"><tt>&lt;streambuf&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../istream.html" title="cpp/header/istream"><tt>&lt;istream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ostream.html" title="cpp/header/ostream"><tt>&lt;ostream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../iostream.html" title="cpp/header/iostream"><tt>&lt;iostream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../sstream.html" title="cpp/header/sstream"><tt>&lt;sstream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../spanstream.html" title="cpp/header/spanstream"><tt>&lt;spanstream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../fstream.html" title="cpp/header/fstream"><tt>&lt;fstream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../syncstream.html" title="cpp/header/syncstream"><tt>&lt;syncstream&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cstdio.html" title="cpp/header/cstdio"><tt>&lt;cstdio&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cinttypes.html" title="cpp/header/cinttypes"><tt>&lt;cinttypes&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../strstream.html" title="cpp/header/strstream"><tt>&lt;strstream&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 正则表达式</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../regex.html" title="cpp/header/regex"><tt>&lt;regex&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 文件系统</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../filesystem.html" title="cpp/header/filesystem"><tt>&lt;filesystem&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 线程支持</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../thread.html" title="cpp/header/thread"><tt>&lt;thread&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../mutex.html" title="cpp/header/mutex"><tt>&lt;mutex&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../shared_mutex.html" title="cpp/header/shared mutex"><tt>&lt;shared_mutex&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../condition_variable.html" title="cpp/header/condition variable"><tt>&lt;condition_variable&gt;</tt></a>    </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../future.html" title="cpp/header/future"><tt>&lt;future&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../stop_token.html" title="cpp/header/stop token"><tt>&lt;stop_token&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../semaphore.html" title="cpp/header/semaphore"><tt>&lt;semaphore&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../latch.html" title="cpp/header/latch"><tt>&lt;latch&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../barrier.html" title="cpp/header/barrier"><tt>&lt;barrier&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> C 兼容</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../ciso646.html" title="cpp/header/ciso646"><tt>&lt;ciso646&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../cstdalign.html" title="cpp/header/cstdalign"><tt>&lt;cstdalign&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../cstdbool.html" title="cpp/header/cstdbool"><tt>&lt;cstdbool&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ccomplex.html" title="cpp/header/ccomplex"><tt>&lt;ccomplex&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../../ctgmath.html" title="cpp/header/ctgmath"><tt>&lt;ctgmath&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../stdatomic.h.html" title="cpp/header/stdatomic.h"><tt>&lt;stdatomic.h&gt;</tt></a></td></tr>
</table></div></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../experimental.html" title="cpp/header/experimental"> 实验性库头文件</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv-h2"><td colspan="5"> 文件系统 TS</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../filesystem.html" title="cpp/header/experimental/filesystem"><tt>&lt;experimental/filesystem&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 并行 TS (v1, v2)</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/algorithm&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/algorithm（页面不存在）"><tt>&lt;experimental/algorithm&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/execution_policy&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/execution policy（页面不存在）"><tt>&lt;experimental/execution_policy&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/exception_list&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/exception list（页面不存在）"><tt>&lt;experimental/exception_list&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/numeric&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/numeric（页面不存在）"><tt>&lt;experimental/numeric&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/simd&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/simd（页面不存在）"><tt>&lt;experimental/simd&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/task_block&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/task block（页面不存在）"><tt>&lt;experimental/task_block&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 库基础 TS (v1, v2, v3)</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/algorithm&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/algorithm（页面不存在）"><tt>&lt;experimental/algorithm&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../any.html" title="cpp/header/experimental/any"><tt>&lt;experimental/any&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/array&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/array（页面不存在）"><tt>&lt;experimental/array&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/chrono&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/chrono（页面不存在）"><tt>&lt;experimental/chrono&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/deque&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/deque（页面不存在）"><tt>&lt;experimental/deque&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/forward_list&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/forward list（页面不存在）"><tt>&lt;experimental/forward_list&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/functional&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/functional（页面不存在）"><tt>&lt;experimental/functional&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/future&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/future（页面不存在）"><tt>&lt;experimental/future&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/iterator（页面不存在）"><tt>&lt;experimental/iterator&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/list&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/list（页面不存在）"><tt>&lt;experimental/list&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/map&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/map（页面不存在）"><tt>&lt;experimental/map&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/memory&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/memory（页面不存在）"><tt>&lt;experimental/memory&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../memory_resource.html" title="cpp/header/experimental/memory resource"><tt>&lt;experimental/memory_resource&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/numeric&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/numeric（页面不存在）"><tt>&lt;experimental/numeric&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../optional.html" title="cpp/header/experimental/optional"><tt>&lt;experimental/optional&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/propagate_const&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/propagate const（页面不存在）"><tt>&lt;experimental/propagate_const&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/random&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/random（页面不存在）"><tt>&lt;experimental/random&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/ratio&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/ratio（页面不存在）"><tt>&lt;experimental/ratio&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/regex&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/regex（页面不存在）"><tt>&lt;experimental/regex&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/scope&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/scope（页面不存在）"><tt>&lt;experimental/scope&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/set&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/set（页面不存在）"><tt>&lt;experimental/set&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/source_location&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/source location（页面不存在）"><tt>&lt;experimental/source_location&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/string&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/string（页面不存在）"><tt>&lt;experimental/string&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string_view.html" title="cpp/header/experimental/string view"><tt>&lt;experimental/string_view&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/system_error&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/system error（页面不存在）"><tt>&lt;experimental/system_error&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/tuple&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/tuple（页面不存在）"><tt>&lt;experimental/tuple&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/type_traits&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/type traits（页面不存在）"><tt>&lt;experimental/type_traits&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/unordered_map&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/unordered map（页面不存在）"><tt>&lt;experimental/unordered_map&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/unordered_set&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/unordered set（页面不存在）"><tt>&lt;experimental/unordered_set&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/utility&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/utility（页面不存在）"><tt>&lt;experimental/utility&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/vector&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/vector（页面不存在）"><tt>&lt;experimental/vector&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 并发 TS</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/atomic&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/atomic（页面不存在）"><tt>&lt;experimental/atomic&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/barrier&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/barrier（页面不存在）"><tt>&lt;experimental/barrier&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/future&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/future（页面不存在）"><tt>&lt;experimental/future&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/latch&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/latch（页面不存在）"><tt>&lt;experimental/latch&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 范围 TS</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <strong class="selflink"><tt>&lt;experimental/ranges/algorithm&gt;</tt></strong></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="concepts.html" title="cpp/header/experimental/ranges/concepts"><tt>&lt;experimental/ranges/concepts&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="functional.html" title="cpp/header/experimental/ranges/functional"><tt>&lt;experimental/ranges/functional&gt;</tt></a>    </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="iterator.html" title="cpp/header/experimental/ranges/iterator"><tt>&lt;experimental/ranges/iterator&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="random.html" title="cpp/header/experimental/ranges/random"><tt>&lt;experimental/ranges/random&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="tuple.html" title="cpp/header/experimental/ranges/tuple"><tt>&lt;experimental/ranges/tuple&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="type_traits.html" title="cpp/header/experimental/ranges/type traits"><tt>&lt;experimental/ranges/type_traits&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="utility.html" title="cpp/header/experimental/ranges/utility"><tt>&lt;experimental/ranges/utility&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 协程 TS</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/coroutine&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/coroutine（页面不存在）"><tt>&lt;experimental/coroutine&gt;</tt></a></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 网络 TS</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/buffer&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/buffer（页面不存在）"><tt>&lt;experimental/buffer&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/executor&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/executor（页面不存在）"><tt>&lt;experimental/executor&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/internet&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/internet（页面不存在）"><tt>&lt;experimental/internet&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/io_context&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/io context（页面不存在）"><tt>&lt;experimental/io_context&gt;</tt></a></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/net&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/net（页面不存在）"><tt>&lt;experimental/net&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/netfwd&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/netfwd（页面不存在）"><tt>&lt;experimental/netfwd&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/socket&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/socket（页面不存在）"><tt>&lt;experimental/socket&gt;</tt></a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/timer&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/timer（页面不存在）"><tt>&lt;experimental/timer&gt;</tt></a></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 反射 TS</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../reflect.html" title="cpp/header/experimental/reflect"><tt>&lt;experimental/reflect&gt;</tt></a></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div></div>
<p>此头文件是<a href="../../../experimental/ranges.html" title="cpp/experimental/ranges">范围</a>库的一部分。
</p>
<h3><span class="mw-headline" id=".E6.A0.87.E7.AD.BE.E8.AF.B4.E6.98.8E.E7.AC.A6"> 标签说明符 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges::tag</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/tags.html" title="cpp/experimental/ranges/algorithm/tags"> <span class="t-lines"><span>in</span><span>in1</span><span>in2</span><span>out</span><span>out1</span><span>out2</span><span>fun</span><span>min</span><span>max</span><span>begin</span><span>end</span></span></a></div></div>
</td>
<td>  用于 <span class="t-lc">ranges::tagged</span> 的标签说明符 <br> <span class="t-mark">(类)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E4.B8.8D.E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C"> 不修改序列的操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/all_any_none_of.html" title="cpp/experimental/ranges/algorithm/all any none of"> <span class="t-lines"><span>all_of</span><span>any_of</span><span>none_of</span></span></a></div></div>
</td>
<td>  检查谓词是否对范围中所有、任一或无元素为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/for_each.html" title="cpp/experimental/ranges/algorithm/for each"> <span class="t-lines"><span>for_each</span></span></a></div></div>
</td>
<td>  应用函数到元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/count&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/count（页面不存在）"> <span class="t-lines"><span>count</span><span>count_if</span></span></a></div></div>
</td>
<td>  返回满足特定判别标准的元素数 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/mismatch&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/mismatch（页面不存在）"> <span class="t-lines"><span>mismatch</span></span></a></div></div>
</td>
<td>  寻找两个范围出现不同的首个位置  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/equal.html" title="cpp/experimental/ranges/algorithm/equal"> <span class="t-lines"><span>equal</span></span></a></div></div>
</td>
<td>  确定元素的二个集合是否相同 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/lexicographical_compare&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lexicographical compare（页面不存在）"> <span class="t-lines"><span>lexicographical_compare</span></span></a></div></div>
</td>
<td>  当一个范围按字典顺序小于另一个范围时，返回 true <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find（页面不存在）"> <span class="t-lines"><span>find</span><span>find_if</span><span>find_if_not</span></span></a></div></div>
</td>
<td>  寻找首个满足特定判别标准的元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_end&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find end（页面不存在）"> <span class="t-lines"><span>find_end</span></span></a></div></div>
</td>
<td>  在特定范围中寻找最后出现的元素序列  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_first_of&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find first of（页面不存在）"> <span class="t-lines"><span>find_first_of</span></span></a></div></div>
</td>
<td>  搜索元素集中的任何元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/adjacent_find&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/adjacent find（页面不存在）"> <span class="t-lines"><span>adjacent_find</span></span></a></div></div>
</td>
<td>  寻找头两个相等（或满足给定谓词）的相邻项 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search（页面不存在）"> <span class="t-lines"><span>search</span></span></a></div></div>
</td>
<td>  搜索一个元素范围  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search n（页面不存在）"> <span class="t-lines"><span>search_n</span></span></a></div></div>
</td>
<td>  在范围中搜索一定量的某个元素的连续副本  <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C"> 修改序列的操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/copy.html" title="cpp/experimental/ranges/algorithm/copy"> <span class="t-lines"><span>copy</span><span>copy_if</span></span></a></div></div>
</td>
<td>  将某一范围的元素复制到一个新的位置  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy n（页面不存在）"> <span class="t-lines"><span>copy_n</span></span></a></div></div>
</td>
<td>  将一定数目的元素复制到一个新的位置  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_backward&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy backward（页面不存在）"> <span class="t-lines"><span>copy_backward</span></span></a></div></div>
</td>
<td>  按从后往前的顺序复制一个范围内的元素  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move（页面不存在）"> <span class="t-lines"><span>move</span></span></a></div></div>
</td>
<td>  将某一范围的元素移动到一个新的位置  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move_backward&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move backward（页面不存在）"> <span class="t-lines"><span>move_backward</span></span></a></div></div>
</td>
<td>  按从后往前的顺序移动某一范围的元素到新的位置  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill（页面不存在）"> <span class="t-lines"><span>fill</span></span></a></div></div>
</td>
<td>  将一个特定值赋值给一个元素范围  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill n（页面不存在）"> <span class="t-lines"><span>fill_n</span></span></a></div></div>
</td>
<td>  将一个值赋值给一定数量的元素  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/transform&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/transform（页面不存在）"> <span class="t-lines"><span>transform</span></span></a></div></div>
</td>
<td>  应用一个函数到元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate（页面不存在）"> <span class="t-lines"><span>generate</span></span></a></div></div>
</td>
<td>  保存函数结果于一个范围中 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate n（页面不存在）"> <span class="t-lines"><span>generate_n</span></span></a></div></div>
</td>
<td>  保存 N 次应用一个函数的结果 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove（页面不存在）"> <span class="t-lines"><span>remove</span><span>remove_if</span></span></a></div></div>
</td>
<td>  移除满足特定判别标准的元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove copy（页面不存在）"> <span class="t-lines"><span>remove_copy</span><span>remove_copy_if</span></span></a></div></div>
</td>
<td>  复制元素范围，忽略满足特定判别标准的元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace（页面不存在）"> <span class="t-lines"><span>replace</span><span>replace_if</span></span></a></div></div>
</td>
<td>  将所有满足特定判别标准的值替换为另一值 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace copy（页面不存在）"> <span class="t-lines"><span>replace_copy</span><span>replace_copy_if</span></span></a></div></div>
</td>
<td>  复制范围，以另一值替换满足特定判别标准的元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/swap_ranges&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/swap ranges（页面不存在）"> <span class="t-lines"><span>swap_ranges</span></span></a></div></div>
</td>
<td>  交换两个元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse（页面不存在）"> <span class="t-lines"><span>reverse</span></span></a></div></div>
</td>
<td>  逆转范围中的元素顺序 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse copy（页面不存在）"> <span class="t-lines"><span>reverse_copy</span></span></a></div></div>
</td>
<td>  创建一个范围的逆向副本  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate（页面不存在）"> <span class="t-lines"><span>rotate</span></span></a></div></div>
</td>
<td>  旋转范围中的元素顺序 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate copy（页面不存在）"> <span class="t-lines"><span>rotate_copy</span></span></a></div></div>
</td>
<td>  复制并旋转元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/shuffle&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/shuffle（页面不存在）"> <span class="t-lines"><span>shuffle</span></span></a></div></div>
</td>
<td>  随机重排范围中的元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique（页面不存在）"> <span class="t-lines"><span>unique</span></span></a></div></div>
</td>
<td>  移除范围中连续的重复元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique copy（页面不存在）"> <span class="t-lines"><span>unique_copy</span></span></a></div></div>
</td>
<td>  创建某范围的不含连续重复元素的副本  <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E5.88.92.E5.88.86.E6.93.8D.E4.BD.9C"> 划分操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_partitioned&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is partitioned（页面不存在）"> <span class="t-lines"><span>is_partitioned</span></span></a></div></div>
</td>
<td>  判断范围是否已按给定的谓词划分  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition（页面不存在）"> <span class="t-lines"><span>partition</span></span></a></div></div>
</td>
<td>  将范围中的元素分为两组  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition copy（页面不存在）"> <span class="t-lines"><span>partition_copy</span></span></a></div></div>
</td>
<td>  复制一个范围，将各元素分为两组  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_partition&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable partition（页面不存在）"> <span class="t-lines"><span>stable_partition</span></span></a></div></div>
</td>
<td>  划分元素到两个组中，同时保持其相对顺序 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_point&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition point（页面不存在）"> <span class="t-lines"><span>partition_point</span></span></a></div></div>
</td>
<td>  定位已划分范围的划分点 <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E6.8E.92.E5.BA.8F.E6.93.8D.E4.BD.9C"> 排序操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_sorted&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted（页面不存在）"> <span class="t-lines"><span>is_sorted</span></span></a></div></div>
</td>
<td>  检查范围是否以升序排序 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_sorted_until&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted until（页面不存在）"> <span class="t-lines"><span>is_sorted_until</span></span></a></div></div>
</td>
<td>  寻找最大已排序子范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="../../../experimental/ranges/algorithm/sort.html" title="cpp/experimental/ranges/algorithm/sort"> <span class="t-lines"><span>sort</span></span></a></div></div>
</td>
<td>  将范围按升序排序  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort（页面不存在）"> <span class="t-lines"><span>partial_sort</span></span></a></div></div>
</td>
<td>  排序一个范围的前 N 个元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort copy（页面不存在）"> <span class="t-lines"><span>partial_sort_copy</span></span></a></div></div>
</td>
<td>  对范围内的元素进行复制并部分排序  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_sort&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable sort（页面不存在）"> <span class="t-lines"><span>stable_sort</span></span></a></div></div>
</td>
<td>  将范围内的元素排序，同时保持相等的元素之间的顺序  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/nth_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/nth element（页面不存在）"> <span class="t-lines"><span>nth_element</span></span></a></div></div>
</td>
<td>  将给定的范围部分排序，确保其按给定元素划分  <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E4.BA.8C.E5.88.86.E6.90.9C.E7.B4.A2.E6.93.8D.E4.BD.9C"> （已排序范围上的）二分搜索操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/lower_bound&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lower bound（页面不存在）"> <span class="t-lines"><span>lower_bound</span></span></a></div></div>
</td>
<td>  返回指向首个<i>不小于</i>给定值的元素的迭代器 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/upper_bound&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/upper bound（页面不存在）"> <span class="t-lines"><span>upper_bound</span></span></a></div></div>
</td>
<td>  返回指向首个<i>大于</i>固定值的元素的迭代器 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/binary_search&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/binary search（页面不存在）"> <span class="t-lines"><span>binary_search</span></span></a></div></div>
</td>
<td>  确定元素是否存在于固定范围中 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/equal_range&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/equal range（页面不存在）"> <span class="t-lines"><span>equal_range</span></span></a></div></div>
</td>
<td>  返回匹配特定关键的元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E9.9B.86.E5.90.88.E6.93.8D.E4.BD.9C"> （已排序范围上的）集合操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/merge&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/merge（页面不存在）"> <span class="t-lines"><span>merge</span></span></a></div></div>
</td>
<td>  归并两个已排序范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/inplace_merge&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/inplace merge（页面不存在）"> <span class="t-lines"><span>inplace_merge</span></span></a></div></div>
</td>
<td>  就地归并两个已排序范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/includes&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/includes（页面不存在）"> <span class="t-lines"><span>includes</span></span></a></div></div>
</td>
<td>  若一个集合是另一个的子集则返回 true <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_difference&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set difference（页面不存在）"> <span class="t-lines"><span>set_difference</span></span></a></div></div>
</td>
<td>  计算两个集合的差集  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_intersection&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set intersection（页面不存在）"> <span class="t-lines"><span>set_intersection</span></span></a></div></div>
</td>
<td>  计算两个集合的交集  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_symmetric_difference&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set symmetric difference（页面不存在）"> <span class="t-lines"><span>set_symmetric_difference</span></span></a></div></div>
</td>
<td>  计算两个集合的对称差  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_union&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set union（页面不存在）"> <span class="t-lines"><span>set_union</span></span></a></div></div>
</td>
<td>  计算两个集合的并集  <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E5.A0.86.E6.93.8D.E4.BD.9C"> 堆操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap（页面不存在）"> <span class="t-lines"><span>is_heap</span></span></a></div></div>
</td>
<td>  检查给定范围是否为一个最大堆  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_heap_until&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap until（页面不存在）"> <span class="t-lines"><span>is_heap_until</span></span></a></div></div>
</td>
<td>  寻找作为最大堆的最大子范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/make_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/make heap（页面不存在）"> <span class="t-lines"><span>make_heap</span></span></a></div></div>
</td>
<td>  从元素范围中创建出最大堆 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/push_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/push heap（页面不存在）"> <span class="t-lines"><span>push_heap</span></span></a></div></div>
</td>
<td>  添加元素到最大堆 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/pop_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/pop heap（页面不存在）"> <span class="t-lines"><span>pop_heap</span></span></a></div></div>
</td>
<td>  从最大堆移除最大元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/sort_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/sort heap（页面不存在）"> <span class="t-lines"><span>sort_heap</span></span></a></div></div>
</td>
<td>  将最大堆转化成以升序排序的元素范围 <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E6.9C.80.E5.B0.8F.2F.E6.9C.80.E5.A4.A7.E6.93.8D.E4.BD.9C"> 最小/最大操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/max&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max（页面不存在）"> <span class="t-lines"><span>max</span></span></a></div></div>
</td>
<td>  返回给定值的较大者 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/max_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max element（页面不存在）"> <span class="t-lines"><span>max_element</span></span></a></div></div>
</td>
<td>  返回范围中的最大元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min（页面不存在）"> <span class="t-lines"><span>min</span></span></a></div></div>
</td>
<td>  返回给定值的较小者 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min element（页面不存在）"> <span class="t-lines"><span>min_element</span></span></a></div></div>
</td>
<td>  返回范围中的最小元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax（页面不存在）"> <span class="t-lines"><span>minmax</span></span></a></div></div>
</td>
<td>  返回二个元素的较小和较大者 <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax element（页面不存在）"> <span class="t-lines"><span>minmax_element</span></span></a></div></div>
</td>
<td>  返回范围中的最小和最大元素 <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E6.8E.92.E5.88.97.E6.93.8D.E4.BD.9C"> 排列操作 </span></h3>
<table class="t-dsc-begin">

<tr class="t-dsc-header">
<td colspan="2"> <div>定义于命名空间 <code>std::experimental::ranges</code></div>
</td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is permutation（页面不存在）"> <span class="t-lines"><span>is_permutation</span></span></a></div></div>
</td>
<td>  判断一个序列是否为另一个序列的排列  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/next_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/next permutation（页面不存在）"> <span class="t-lines"><span>next_permutation</span></span></a></div></div>
</td>
<td>  产生某个元素范围的按字典顺序的下一个较大的排列  <br> <span class="t-mark">(函数模板)</span> </td></tr>

<tr class="t-dsc">
<td>  <div class="t-dsc-member-div"><div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/prev_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/prev permutation（页面不存在）"> <span class="t-lines"><span>prev_permutation</span></span></a></div></div>
</td>
<td>  产生某个元素范围的按字典顺序的下一个较小的排列  <br> <span class="t-mark">(函数模板)</span> </td></tr>
</table>
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81"> 概要 </span></h3>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="co2">#include &lt;initializer_list&gt;</span>
 
<span class="kw1">namespace</span> std <span class="br0">{</span> <span class="kw1">namespace</span> experimental <span class="br0">{</span> <span class="kw1">namespace</span> ranges <span class="br0">{</span> <span class="kw1">inline</span> <span class="kw1">namespace</span> v1 <span class="br0">{</span>
 
<span class="kw1">namespace</span> tag <span class="br0">{</span>
  <span class="kw1">struct</span> in<span class="sy4">;</span>
  <span class="kw1">struct</span> in1<span class="sy4">;</span>
  <span class="kw1">struct</span> in2<span class="sy4">;</span>
  <span class="kw1">struct</span> out<span class="sy4">;</span>
  <span class="kw1">struct</span> out1<span class="sy4">;</span>
  <span class="kw1">struct</span> out2<span class="sy4">;</span>
  <span class="kw1">struct</span> fun<span class="sy4">;</span>
  <span class="kw1">struct</span> min<span class="sy4">;</span>
  <span class="kw1">struct</span> max<span class="sy4">;</span>
  <span class="kw1">struct</span> begin<span class="sy4">;</span>
  <span class="kw1">struct</span> end<span class="sy4">;</span>
<span class="br0">}</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> all_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> all_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> any_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> any_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> none_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> none_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryInvocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">&gt;</span>
    for_each<span class="br0">(</span>I first, S last, Fun f, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryInvocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">&gt;</span>
    for_each<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Fun f, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  I find<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    find<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  I find_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    find_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  I find_if_not<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    find_if_not<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
    Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>I2, projected<span class="sy1">&lt;</span>I1, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  I1
    find_end<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
             Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
    find_end<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  I1
    find_first_of<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
                  Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
                  Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
    find_first_of<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2,
                  Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
                  Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  I
    adjacent_find<span class="br0">(</span>I first, S last, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
                  Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    adjacent_find<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
    count<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
    count<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
    count_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
    count_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
    mismatch<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
              tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    mismatch<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> equal<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
             Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> equal<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
    Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> is_permutation<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
                      Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
                      Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> is_permutation<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
                      Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
    Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  I1
    search<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
           Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
           Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
    search<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
           Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T,
    <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
  I
    search_n<span class="br0">(</span>I first, S last, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> count,
             <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
             Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    search_n<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> count,
             <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    copy_n<span class="br0">(</span>I first, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, BidirectionalIterator I2<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
    copy_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
    copy_backward<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyMovable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    move<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyMovable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    move<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, BidirectionalIterator I2<span class="sy1">&gt;</span>
  requires IndirectlyMovable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
    move_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">&gt;</span>
  requires IndirectlyMovable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
    move_backward<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
  requires IndirectlySwappable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
    swap_ranges<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng1, ForwardRange Rng2<span class="sy1">&gt;</span>
  requires IndirectlySwappable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    swap_ranges<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
    CopyConstructible F, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    transform<span class="br0">(</span>I first, S last, O result, F op, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O, CopyConstructible F,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>
    projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    transform<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, F op, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>,
    projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    transform<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
              F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
    CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>
    projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    transform<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
              F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
  I
    replace<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    replace<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
  I
    replace_if<span class="br0">(</span>I first, S last, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    replace_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    replace_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
                 Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    replace_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
                 Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    replace_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value,
                    Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    replace_copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value,
                    Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, Sentinel<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
  O fill<span class="br0">(</span>O first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, OutputRange<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> Rng<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    fill<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O<span class="sy1">&gt;</span>
  O fill_n<span class="br0">(</span>O first, difference_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator O, Sentinel<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S, CopyConstructible F<span class="sy1">&gt;</span>
  requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Writable<span class="sy1">&lt;</span>O, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  O generate<span class="br0">(</span>O first, S last, F gen<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Rng, CopyConstructible F<span class="sy1">&gt;</span>
  requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> OutputRange<span class="sy1">&lt;</span>Rng, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    generate<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, F gen<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator O, CopyConstructible F<span class="sy1">&gt;</span>
  requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Writable<span class="sy1">&lt;</span>O, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
  O generate_n<span class="br0">(</span>O first, difference_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, F gen<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  I remove<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    remove<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
    I remove_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    remove_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O, <span class="kw1">class</span> T,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    remove_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    remove_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    remove_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    remove_copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
  I unique<span class="br0">(</span>I first, S last, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    unique<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    <span class="br0">(</span>ForwardIterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">||</span>
    <span class="br0">(</span>InputIterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Same<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>, value_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
    IndirectlyCopyableStorable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="br0">)</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    unique_copy<span class="br0">(</span>I first, S last, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    <span class="br0">(</span>ForwardIterator<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> <span class="sy3">||</span>
    <span class="br0">(</span>InputIterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Same<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>, value_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
    IndirectlyCopyableStorable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span><span class="br0">)</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    unique_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
  I reverse<span class="br0">(</span>I first, S last<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    reverse<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span> reverse_copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    reverse_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
    rotate<span class="br0">(</span>I first, I middle, S last<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
              tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    rotate<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    rotate_copy<span class="br0">(</span>I first, I middle, S last, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    rotate_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, O result<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    UniformRandomNumberGenerator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
    ConvertibleTo<span class="sy1">&lt;</span>result_of_t<span class="sy1">&lt;</span>Gen<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;</span>, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;&gt;</span>
  I shuffle<span class="br0">(</span>I first, S last, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    UniformRandomNumberGenerator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
    ConvertibleTo<span class="sy1">&lt;</span>result_of_t<span class="sy1">&lt;</span>Gen<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;</span>, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    shuffle<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> is_partitioned<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  <span class="kw4">bool</span>
    is_partitioned<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
    I partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    partition<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
  I stable_partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    stable_partition<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O1, WeaklyIncrementable O2,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> IndirectlyCopyable<span class="sy1">&lt;</span>I, O2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">&gt;</span>
    partition_copy<span class="br0">(</span>I first, S last, O1 out_true, O2 out_false, Pred pred,
                   Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O1, WeaklyIncrementable O2,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">&gt;</span>
    partition_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O1 out_true, O2 out_false, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  I partition_point<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    partition_point<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
    I sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
    I stable_sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    stable_sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
    I partial_sort<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    partial_sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                 Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, RandomAccessIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Sortable<span class="sy1">&lt;</span>I2, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span>
  I2
    partial_sort_copy<span class="br0">(</span>I1 first, S1 last, I2 result_first, S2 result_last,
                      Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, RandomAccessRange Rng2, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
    Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>
    partial_sort_copy<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng, Rng2<span class="sy3">&amp;&amp;</span> result_rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                      Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span> is_sorted<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    is_sorted<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I is_sorted_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    is_sorted_until<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
    I nth_element<span class="br0">(</span>I first, I nth, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    nth_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> nth, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I
    lower_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    lower_bound<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I
    upper_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    upper_bound<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
    equal_range<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
              tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    equal_range<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    binary_search<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                  Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    binary_search<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                  Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    merge<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
          Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    merge<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
          Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  I
    inplace_merge<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    inplace_merge<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                  Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    includes<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    includes<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_union<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
              Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
    <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_union<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
              Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  O
    set_intersection<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
                     Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
    <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  O
    set_intersection<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
                     Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
                   Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
    <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_difference<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
                   Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_symmetric_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
                             Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>,
                             Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
    <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
  tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
               tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
    set_symmetric_difference<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                             Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  I push_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">==</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    push_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  I pop_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    pop_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  I make_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    make_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  I sort_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    sort_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span> is_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    is_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I is_heap_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    is_heap_until<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
  value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
    min<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
  value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
    max<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">constexpr</span> tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>T<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>T<span class="br0">)</span><span class="sy1">&gt;</span>
    minmax<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span><span class="br0">)</span>,
              tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    minmax<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I min_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    min_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  I max_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
    max_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
    minmax_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
              tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
    minmax_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
    <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    lexicographical_compare<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
                            Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                            Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
    <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
    IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
      projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
  <span class="kw4">bool</span>
    lexicographical_compare<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
                            Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> next_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  <span class="kw4">bool</span>
    next_permutation<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
  <span class="kw4">bool</span> prev_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
    <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
  requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
  <span class="kw4">bool</span>
    prev_permutation<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
 
<span class="br0">}</span><span class="br0">}</span><span class="br0">}</span><span class="br0">}</span></pre></div></div>

<!-- 
NewPP limit report
Preprocessor visited node count: 16171/1000000
Preprocessor generated node count: 11274/1000000
Post‐expand include size: 531565/2097152 bytes
Template argument size: 146625/2097152 bytes
Highest expansion depth: 20/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_zh_:pcache:idhash:12081-0!*!0!!zh!*!zh!* and timestamp 20211022205600 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    来自“<a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/ranges/algorithm&amp;oldid=62217">https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/ranges/algorithm&amp;oldid=62217</a>”                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        <div id="cpp-footer-base" class="noprint">
            <div id="footer">
                        <div id="cpp-navigation">
            <h5>导航</h5>
            <ul><li><a href="https://zh.cppreference.com/w/cpp/header/experimental/ranges/algorithm">Online version</a></li><li>Offline version retrieved 2022-01-01 00:37.</li></ul></div>
                        <ul id="footer-info">
                                    <li id="footer-info-lastmod"> 本页面最后修改于2019年8月23日 (星期五) 04:32。</li>
                                    <li id="footer-info-viewcount">此页面已被浏览过706次。</li>
                            </ul>
                    </div>
        </div>
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.MathJax","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../../../common/site_scripts.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 4.372 secs. -->
	</body>
<!-- Cached 20211022205601 -->
</html>